<?php
require_once "funciones.php";
$link_caweb = con_caweb();
$facturasistema	=$_REQUEST[facturasistema];
$idabonos       =$_REQUEST['idabono'];
$usuariocreo    =$_SESSION['caweb']['username'];
$notaNumero     =$_REQUEST['notaNumero'];

//obtiene las facturas
$sql = "select facturasistema from detallesabonosId where idabonos = $idabonos ";
$result = mysql_query($sql, $link_caweb) or die("Error SQL 2".mysql_error().$sql);
$row    = mysql_fetch_array($result);
if(is_array($row)){
    $facturasistema = $row[facturasistema];
    while($row = mysql_fetch_array($result)){
        $facturasistema .= ",". $row[facturasistema];
    }
    $sql = "select * from cabeceraabonosId where idabonos = $idabonos";
    $result = mysql_query($sql, $link_caweb) or die("Error SQL 1".mysql_error().$sql);
    $valorabonado	=mysql_result($result, 0,"valrecaudo");
    $fechapago	=mysql_result($result, 0,"fecharecaudo");
    $tiporecaudo	=mysql_result($result, 0,"tipo");
    $claserecaudo	=mysql_result($result, 0,"clase");
    $cheque		=mysql_result($result, 0,"cheque");
    $banco		=mysql_result($result, 0,"banco");
    $sucursal           =mysql_result($result, 0,"sucursal");
    $cuenta		=mysql_result($result, 0,"cuenta");
    $clientefacturaabono=mysql_result($result, 0,"cliente");
    $facturasistemaarray=split(",",$facturasistema);
    $numerodefacturas   =count($facturasistemaarray);
    $result28 = "UPDATE consecutivos SET abonos=abonos+1";
    $result29 = "SELECT abonos AS numero FROM consecutivos";
    $result28 = mysql_query($result28, $link_caweb) or die('Error consecutivos, ' . mysql_error());
    $result29 = mysql_query($result29, $link_caweb) or die('Error consecutivos, ' . mysql_error());
    $row29 = mysql_fetch_array($result29);

    $transaccion = $row29[numero];

    $respuesta = 0;
    $result = "SELECT SUM(cuadre) AS cuadre FROM cabeceras_fac WHERE facturasistema IN ($facturasistema)";
    $result = mysql_query($result, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
    $row = mysql_fetch_array($result);

    $result0 = "SELECT SUM(cuadre) AS cuadrefinal FROM cabeceras_fac WHERE facturasistema IN ($facturasistema) AND ajuste <> 'Si'";
    $result0 = mysql_query($result0, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
    $row0 = mysql_fetch_array($result0);

    $valorabonadofinal = $valorabonado - $row0[cuadrefinal];

    if ($valorabonado < $row[cuadre] AND $numerodefacturas == 1)
        $respuesta = 1;   // valor abonado < cuadre, sera abonado a esa factura
     if ($valorabonado < $row[cuadre] AND $numerodefacturas > 1)
            $respuesta = 2;   // valor abonado < cuadre y tiene mas de una factura
     if ($valorabonado > $row[cuadre])
            $respuesta = 3;          // valor abonado > cuadre no se aplica abono
     if ($valorabonado == $row[cuadre])
            $respuesta = 4;         // valor abonado == cuadre
     if ($respuesta == 4 OR $respuesta == 1) {
        // guarda el recaudo
        $result18 = "UPDATE consecutivos SET recaudos=recaudos+1";
        $result19 = "SELECT recaudos AS numero FROM consecutivos";

        $result18 = mysql_query($result18, $link_caweb) or die('Error consecutivos, ' . mysql_error());
        $result19 = mysql_query($result19, $link_caweb) or die('Error consecutivos, ' . mysql_error());
        $row19 = mysql_fetch_array($result19);

        $transaccion2 = $row19[numero];

        $result = "INSERT INTO recaudos (recaudo,sucursal,usuariocreo,fechacreo,fecharecaudo,cliente,valorrecaudo,clase,tipo,cheque,
                            cuenta,banco,idabonos,notaNumero) VALUES ('$transaccion2','$sucursal','$usuariocreo',now(),'$fechapago','$clientefacturaabono',
                            '$valorabonado','$claserecaudo','$tiporecaudo','$cheque','$cuenta','$banco','$idabonos','$notaNumero')";
        $result = mysql_query($result, $link_caweb) or die('Error abonosfacturacion, ' . mysql_error());
        // fin guardar recaudo
    }
    if ($respuesta == 4) {
        foreach ($facturasistemaarray as $valor) {
            $result4 = "SELECT factura,cuadre,sucursal FROM cabeceras_fac WHERE facturasistema='$valor'";
            $result4 = mysql_query($result4, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
            $row4 = mysql_fetch_array($result4);

            $result2 = "UPDATE cabeceras_fac SET fechapago='$fechapago',estadocartera='C',valorpagado=valorpagado+cuadre, cuadre=0,
                    observacioncartera=concat(observacioncartera,'$observacionpago','- Del Pago total ','$valorabonado',' el ','$fechapago') WHERE facturasistema='$valor'";
            $result2 = mysql_query($result2, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());

            // Adiciona al Log
            $result3 = "INSERT INTO abonosfacturacion (cliente,pagototal,transaccion,factura,tipo,facturasistema,sucursal,valor,fechacreo,
                            usuariocreo,fechaabono,observacion,estadocartera,recaudo) VALUES ('$clientefacturaabono','$valorabonado','$transaccion','$row4[factura]','Abono',
                            '$valor','$row4[sucursal]','$row4[cuadre]',now(),'$usuariocreo','$fechapago','$observacionpago','C','$transaccion2')";
            $result3 = mysql_query($result3, $link_caweb) or die('Error abonosfacturacion, ' . mysql_error());
        }
    }
    if ($respuesta == 1) {
        foreach ($facturasistemaarray as $valor) {
            $result4 = "SELECT factura,sucursal FROM cabeceras_fac WHERE facturasistema='$valor'";
            $result4 = mysql_query($result4, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
            $row4 = mysql_fetch_array($result4);

            $result2 = "UPDATE cabeceras_fac SET fechapago='$fechapago',estadocartera='A',valorpagado=valorpagado+'$valorabonado',
                    cuadre=cuadre-'$valorabonado',observacioncartera=concat(observacioncartera,'$observacionpago','- Del Pago total ','$valorabonado',' el ','$fechapago')
                                    WHERE facturasistema='$valor'";
            $result2 = mysql_query($result2, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());

            // Adiciona al Log
            $result3 = "INSERT INTO abonosfacturacion (cliente,pagototal,transaccion,factura,tipo,facturasistema,sucursal,valor,fechacreo,
                            usuariocreo,fechaabono,observacion,estadocartera,recaudo) VALUES ('$clientefacturaabono','$valorabonado','$transaccion','$row4[factura]','Abono',
                            '$valor','$row4[sucursal]','$valorabonado',now(),'$usuariocreo','$fechapago','$observacionpago','A','$transaccion2')";
            $result3 = mysql_query($result3, $link_caweb) or die('Error abonosfacturacion, ' . mysql_error());
        }
    }
    if ($respuesta == 2) { // sobra un saldo para la marcada con Si en Ajuste
        $result = "SELECT * FROM cabeceras_fac WHERE facturasistema IN ($facturasistema) AND ajuste='Si'";
        $result = mysql_query($result, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
        $registros = mysql_num_rows($result);
        if ($registros <> 1) {
            if ($registros == 0)
                $respuesta = 5;  // No ha marcado una factura para el abono
 if ($registros > 1)
                $respuesta = 6;  // Marco mas de una factura para el abono

        }
        else {
            // guarda el recaudo
            $result18 = "UPDATE consecutivos SET recaudos=recaudos+1";
            $result19 = "SELECT recaudos AS numero FROM consecutivos";

            $result18 = mysql_query($result18, $link_caweb) or die('Error consecutivos, ' . mysql_error());
            $result19 = mysql_query($result19, $link_caweb) or die('Error consecutivos, ' . mysql_error());
            $row19 = mysql_fetch_array($result19);

            $transaccion2 = $row19[numero];

            $result = "INSERT INTO recaudos (recaudo,sucursal,usuariocreo,fechacreo,fecharecaudo,cliente,valorrecaudo,clase,tipo,cheque,
                                    cuenta,banco,idabonos,notaNumero) VALUES ('$transaccion2','$sucursal','$usuariocreo',now(),'$fechapago','$clientefacturaabono',
                                    '$valorabonado','$claserecaudo','$tiporecaudo','$cheque','$cuenta','$banco','$idabonos','$notaNumero')";
            $result = mysql_query($result, $link_caweb) or die('Error abonosfacturacion, ' . mysql_error());
            // fin guardar recaudo

            foreach ($facturasistemaarray as $valor) {
                $result4 = "SELECT factura,ajuste,cuadre,sucursal FROM cabeceras_fac WHERE facturasistema='$valor'";
                $result4 = mysql_query($result4, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
                $row4 = mysql_fetch_array($result4);

                if ($row4[ajuste] == "") {
                    $result = "SELECT cuadre FROM cabeceras_fac WHERE facturasistema='$valor'";
                    $result = mysql_query($result, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());
                    $row = mysql_fetch_array($result);

                    $result2 = "UPDATE cabeceras_fac SET fechapago='$fechapago',estadocartera='C',valorpagado=valorpagado+cuadre, cuadre=0,
                                                    observacioncartera=concat(observacioncartera,'$observacionpago','- Del Pago total ','$valorabonado',' el ','$fechapago')
                                                    WHERE facturasistema='$valor'";
                    $result2 = mysql_query($result2, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());

                    // Adiciona al Log
                    $result3 = "INSERT INTO abonosfacturacion (cliente,pagototal,transaccion,factura,tipo,facturasistema,sucursal,valor,fechacreo,usuariocreo,fechaabono,
                                                    observacion,estadocartera,recaudo) VALUES ('$clientefacturaabono','$valorabonado','$transaccion','$row4[factura]','Abono','$valor',
                                                    '$row4[sucursal]','$row[cuadre]',now(),'$usuariocreo','$fechapago','$observacionpago','C','$transaccion2')";
                    $result3 = mysql_query($result3, $link_caweb) or die('Error abonosfacturacion, ' . mysql_error());
                }

                if ($row4[ajuste] == "Si" and $valorabonadofinal > 0) {
                    $result2 = "UPDATE cabeceras_fac SET ajuste='', fechapago='$fechapago',estadocartera='A',valorpagado=valorpagado+'$valorabonadofinal',
                                            cuadre=cuadre-'$valorabonadofinal',observacioncartera=concat(observacioncartera,'$observacionpago','- Del Pago total ','$valorabonado',
                                            ' el ','$fechapago') WHERE facturasistema='$valor'";
                    $result2 = mysql_query($result2, $link_caweb) or die('Error cabeceras_fac, ' . mysql_error());

                    // Adiciona al Log
                    $result3 = "INSERT INTO abonosfacturacion (cliente,pagototal,transaccion,factura,tipo,facturasistema,sucursal,valor,fechacreo,usuariocreo,fechaabono,
                                                    observacion,estadocartera,recaudo) VALUES ('$clientefacturaabono','$valorabonado','$transaccion','$row4[factura]','Abono','$valor',
                                                    '$row4[sucursal]','$valorabonadofinal',now(),'$usuariocreo','$fechapago','$observacionpago','A','$transaccion2')";
                    $result3 = mysql_query($result3, $link_caweb) or die('Error abonosfacturacion, ' . mysql_error());
                }
            }
            $respuesta = 7;
        }
    }
//    //Cambia el estado del Abono
//    $sql = "update cabeceraabonosId set estado = 'V' where idabonos = $idabonos";
//    $result = mysql_query($sql, $link_caweb) or die("Error SQL 1" . mysql_error() . $sql);
} //fin if(is_array($row)){
else $respuesta = 8;
if($respuesta == 7 || $respuesta == 1 || $respuesta == 4){ //Solo cambia el estado del identificador cuando es exitoso el proceso
    //Cambia el estado del Abono
    $sql = "update cabeceraabonosId set estado = 'V' where idabonos = $idabonos";
    $result = mysql_query($sql, $link_caweb) or die("Error SQL 1" . mysql_error() . $sql);
    if($notaNumero > 0){
        $sql = "update cabeceras_nota set estado = 'Aplicada' where notaNumero = '$notaNumero'";
        $result = mysql_query($sql, $link_caweb) or die("Error SQL 1" . mysql_error() . $sql);
    }
}

echo $respuesta;


?>